Recommending entities based on interest indicators

ABSTRACT

Entities such as hotels, restaurants, resorts, houses, vehicles, and other places and things, are associated with images of each entity. The images are tagged using machine learning to identify what aspects of the associated entity are captured by each image. When a user is requested to select an entity from a set of entities, a user preference model is used to determine what tags the user is interested in. The tags are used to select images associated with the entities from the set of entities, and the selected images are displayed to the user. The user can then provide indicators that show which of the displayed images the user likes or dislikes. Based on the indicators, one or more entities from the set of entities is presented to the user. The model may also be updated based on the indicators.

BACKGROUND

Currently, when a user browses for entities such as restaurants andhotels, they typically perform a search based on criteria such asavailability, location, price, cuisine, etc. The user then drills downon the entities in the set of search results by looking at images orother information about each entity that may help the user make aselection.

For example, for entities such as hotels, a user may start by searchingfor hotel rooms based on location and desired dates. After receiving aset of matching hotels, the user may begin learning about each matchinghotel by looking at pictures of the various features of the hotel suchas the pool, the bar, the gym, the room, and the exterior.

In another example, for entities such as restaurants, a user may startby searching for reservations at a particular date and time near aparticular location. After receiving a set of restaurants withavailability at the specified date and time, the user may begin lookingat images of the matching restaurants such as images of dining rooms orbars, or images of particular dishes or menu items that the user isinterested in.

As may be appreciated, there are many drawbacks associated withselecting entities as described above. First, after the user receivesthe set of matching entities, the user is often forced to open or visitmultiple webpages to learn about each entity.

For example, for entities such as hotels, a user may be interested inselecting a hotel based on the quality of its gym and bar. However, mosthotel reservation applications show a single image, often of the hotelexteriors, in a set of search results. Accordingly, the user must travelto a different webpage, or even a different website, to view the imagesof gyms and bars that the user is interested in.

Similarly, for restaurant entities, a user may be interested in viewingimages of certain dishes, such as vegetarian dishes, for example, thatare available at each restaurant returned in a search. However, viewingthese images may require several clicks by the user, or may require thatthe user visit a different website focused on restaurant reviews.

Another drawback is that even if the user is able to locate the imagesthat the user is interested in for each entity, there is no way for theuser to easily compare the images across different entities. Forexample, for hotel entities, the user may have been able to locate animage of each hotel bar that they are considering, but those images maybe spread across multiple different webpages, making a direct comparisondifficult without resizing or moving multiple browser windows. Comparingimages of restaurant dishes across multiple webpages and browser windowsmay be similarly inconvenient.

SUMMARY

Entities such as hotels, restaurants, resorts, vehicles, and otherplaces and things, are associated with images of each entity. The imagesare tagged using machine learning to identify what aspects of theassociated entity are captured by each image. When a user is requestedto select an entity from a set of entities, a user preference model isused to determine what tags the user is interested in. The tags are usedto select images associated with the entities from the set of entities,and the selected images are displayed to the user in a single userinterface. The user can provide indicators that show which of thedisplayed images the user likes or dislikes. Based on the indicators,one or more entities from the set of entities is presented to the user.The model may also be updated based on the indicators.

In an implementation, a system for selecting and displaying images foreach of a plurality of entities and for recommending an entity of theplurality of entities based on interest indicators is provided. Thesystem includes at least one computing device and an image engine. Theimage engine receives identifiers of a plurality of entities; receives aplurality of images for each entity of the plurality of entities,wherein each image is associated with a tag; for each entity of theplurality of entities, selects one or more images of the plurality ofimages associated with the entity based on the tags associated with theimages of the plurality of images associated with the entity; for eachentity of the plurality of entities, displays the selected one or moreimages associated with entity; receives interest indicators for thedisplayed images; and based on the received interest indicators,recommends an entity of the plurality of entities.

In an implementation, a system for selecting and presenting images foreach of a plurality of entities and for recommending an entity of theplurality of entities based on interest indicators is provided. Thesystem may include at least one computing device and an image engine.The image engine receives identifiers of a plurality of entities;receives a first preference model associated with a first user and asecond preference model associated with a second user; receives aplurality of images for each entity of the plurality of entities,wherein each image is associated with a tag; selects a first set ofimages from the plurality of images associated with each entity based onthe tags associated with the images and the first preference model;provides the first set of images to the first user; selects a second setof images from the plurality of images associated with each entity basedon the tags associated with the images and the second preference model;provides the second set of images to the second user; receives firstinterest indicators from the first user for the first set of images;receives second interest indicators from the second user for the secondset of images; and based on the first and second interest indicators,recommends an entity of the plurality of entities to the first user andthe second user.

In an implementation, a method for selecting and presenting images foreach of a plurality of entities and for recommending an entity of theplurality of entities based on interest indicators is provided. Themethod includes receiving identifiers of a plurality of entities by acomputing device; receiving a plurality of images for each entity of theplurality of entities by the computing device, wherein each image isassociated with a tag; for each entity of the plurality of entities,selecting one or more images of the plurality of images associated withthe entity based on the tags associated with the images of the pluralityof images associated with the entity and a preference model by thecomputing device; for each entity of the plurality of entities,providing the selected one more images associated with entity by thecomputing device; receiving interest indicators in the provided imagesby the computing device; and based on the received interest indicators,recommending an entity of the plurality of entities by the computingdevice.

This summary is provided to introduce a selection of concepts in asimplified form that are further described below in the detaileddescription. This summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used to limit the scope of the claimed subject matter.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing summary, as well as the following detailed description ofillustrative embodiments, is better understood when read in conjunctionwith the appended drawings. For the purpose of illustrating theembodiments, there is shown in the drawings example constructions of theembodiments; however, the embodiments are not limited to the specificmethods and instrumentalities disclosed. In the drawings:

FIG. 1 is an illustration of an exemplary environment for presentingimages for entities based on tags and a user preference model, receivinginterest indicators for the presented images, and for recommending oneor more of the entities based on the received interest indicators;

FIG. 2 is an illustration of an implementation of an exemplary imageengine;

FIGS. 3-7 are illustrations of example user interfaces for viewingimages, providing interest indicators, and for viewing recommendationsbased on the provided interest indicators;

FIG. 8 is an operational flow of an implementation of a method forrecommending an entity based on interest indicators received from auser;

FIG. 9 is an operational flow of an implementation of a method forrecommending an entity based on interest indicators received from two ormore users;

FIG. 10 is an operational flow of an implementation of a method forrecommending an entity based on interest indicators received from a userand for updating a preference model; and

FIG. 11 shows an exemplary computing environment in which exampleembodiments and aspects may be implemented.

DETAILED DESCRIPTION

FIG. 1 is an illustration of an exemplary environment for presentingimages for entities based on tags and a user preference model, receivinginterest indicators for the presented images, and for recommending oneor more of the entities based on the received interest indicators. Theenvironment 100 may include an image engine 165, a search provider 175,and one or more client devices 110 in communication through a network122. The network 122 may be a variety of network types including thepublic switched telephone network (PSTN), a cellular telephone network,and a packet switched network (e.g., the Internet). Although only oneclient device 110, one image engine 165, and one search provider 175 areshown in FIG. 1, there is no limit to the number of client devices 110,image engines 165, and search providers 175 that may be supported.

The client device 110 and the image engine 165 may be implemented usinga variety of computing devices such as smartphones, desktop computers,laptop computers, tablets, set top boxes, vehicle navigation systems,and videogame consoles. Other types of computing devices may besupported. A suitable computing device is illustrated in FIG. 11 as thecomputing device 1100.

In some implementations, the client device 110 may be a computing devicethat is suited to provide one or more AR (augmented reality)applications. Example computing devices include a headset that allowslight to pass through the headset such that a user can view theirenvironment as if they were looking through conventional glasses, butthat is configured to render virtual objects such that they appear tothe user as if they are part of their environment. Another examplecomputing device is a smartphone that can capture images or videos of auser's environment, and can render virtual objects into the capturedimages or videos as they are viewed by the user on a display associatedwith the smartphone.

The search provider 175 may receive queries 111 for one or more entities177, and in response may identify entities 177 that are responsive tothe queries 111 using a search corpus 176. The search corpus 176 may bean index, or other data structure, that associates keywords, or otherdata, with entities 177.

An entity 177 as defined herein may include a variety of people, places,and things. Examples of entities 177 that may be represented in thesearch corpus 176 may include places such as restaurants, hotels,resorts, cities, houses, buildings, etc., things such as vehicles,appliances, clothing, etc., and people such as celebrities, publicfigures, etc.

Each entity 177 may be associated with one or more images 168. Eachimage 168 may be associated with a tag 169. The tag 169 associated withan image 168 may describe or identify a particular attribute of theentity 177 that is associated with the image 168. For example, forentities 177 that are hotels, an image 168 of a pool associated with thehotel may be associated with the tag 169 “pool”. For entities 177 thatare vehicles, an image 168 of the interior of the vehicle may beassociated with the tag 169 “interior”. In another example, for entities177 that are restaurants, an image 168 of a piece of cake served by therestaurant may be associated with tags 169 such as “desert” and/or“cake”. Depending on the implementation, the tags 169 may be provided bythe entities 177 themselves, provided by users or administrators,automatically generated using machine learning, or some combination ofthe above.

As described above, a drawback associated with current methods forsearching for entities 177 such as hotels and restaurants is that usersare forced to take additional steps to find desired information aboutthe entities 177 and are unable to easily compare entities based on thedesired information. For example, a user may be interested in selectingan entity 177 such as a hotel for an upcoming trip. Because the user isinterested in fitness, for example, the user may be particularlyinterested in seeing the gyms offered at each hotel. After the usersubmits a query 111 to a search provider 175 that includes the desireddates and location, the search provider 175 may identify hotels thatmatch the query 111. Typically, the hotels are identified to the user ina list that includes identification information about each hotel such asthe location and prices, and may include images 168 of the exterior ofthe hotel.

However, as noted above, the user is interested in comparing hotelsbased on images 168 of gyms and may not be interested in the defaultimages 168 that are provided by the search provider 175. The user is nowforced to open additional browser windows, or visit additional webpagesto determine the desired images 168 of gyms. Moreover, even if the useris able to locate the images 168 of gyms for each hotel, because theseimages 168 are scattered across multiple windows and webpages, comparingthese images 168 may be difficult for the user.

To solve these drawbacks and others, the environment 100 may furtherinclude an image engine 165. The image engine 165 may receive entities177 selected by a search provider 175 and may use what is referred toherein as a preference model 167 to select images 168 that areassociated with the entities 177 based on the tags 169 associated withthe images 168. The preference model 167 may be specific to each user ofthe image engine 165 and may reflect the type of images 168 that areinteresting to the user or that are helpful for the user when selectingentities 177. The preference model 167 may be built and continuouslyupdated by observing the image 168 and entity 177 preferences of eachuser.

The selected images 168 are presented to the user that provided thequery 111 as the set of images 171. The selected images 168 may bepresented to the user in a single user interface that allows the user toeasily compare the images 168. The user may provide interest indicators113 with respect to the images 168 in the set of images 171. Theinterest indicators 113 may be any type of indicator that shows interest(or disinterest) in the images 168 in the set of images 171 and mayinclude clicks, selections, scores, ratings, “likes”, etc. Based on theinterest indicators 113 received for the images 168 of the set of images171, the image engine 165 may generate and provide a recommendation 172that includes one or more entities 177 selected based on the interestindicators 113.

Continuing the hotel entity 177 example above, a user may be interestedin a hotel for an upcoming vacation. After the search provider 175identifies hotel entities 177 that are responsive to a query 111, theimage engine 165 may collect images 168 that are associated with eachhotel entity 177. As described above, each image 168 may have a tag 169that identifies the contents of the image 168 such as whether the imageis of a pool, a bar, a room, or other hotel facility, for example.

Using the tags 169 associated with each image 168 and the preferencemodel 167, the image engine 165 may select the images 168 that arelikely to be relevant to the user. As described above, the user mayselect hotels based on the quality of the gym. Accordingly, thepreference model 167 may tend to favor images 168 that have tags 169such as “gym” or that are otherwise fitness related. The selected images168 may be presented to the user as the set of images 171.

Depending on the implementation, the images 168 from the set of images171 may be displayed on a client device 110 associated with the user.The images 168 from the set of images 171 may be grouped based on theassociated hotel entity 177, or based on the associated tags 169. Theimages 168 may be displayed in a single user interface so that the usercan easily compare all of the images 168 that are associated with thetag 169 “gym”.

The user may provide interest indicators 113 with respect to thedisplayed images 168. For example, the user can select or highlight the“gym” images 168 that the user prefers, or can assign ratings or scoresto some or all of the images 168.

After the user provides the interest indicators 113, the image engine165 may provide a recommendation 172 that identifies at least one of theentities 177 and information about the identified entities 177. In someimplementations, the image engine 165 may use the interest indicators113 to determine which images 168 the user preferred, and may select theentities 177 associated with the preferred images 168 for therecommendation 172. Continuing the hotel example, the informationincluded for each hotel entity 177 may include the name of the hotel, aphone number or other contact information of the hotel, and links orother user interface elements that may be used to book or reserve a roomat the hotel.

As may be appreciated, the image engine 165 solves many of the drawbacksassociated with traditional entity 177 search. For example, because theimages 168 that are shown for each entity 177 are selected using apreference model 167 that is specific to each user, the user is likelyto view images 168 that are relevant to the user's interests and theuser is unlikely to have to perform additional searches orinvestigations to select an entity 177.

Additionally, because the user is shown all of the images 168 with thesame tag 169 in the same user interface, the user is able to easilycompare entities 177 based on images 168 having the same tag 169.Continuing the hotel example above, the user can compare hotel entities177 based on images 168 of rooms, bars, gyms, and other amenities allfrom the same user interface.

In another implementation, the image engine 165 may allow multiple usersto select entities 177 using interest indicators 113 received from eachof the users. For example, a group of friends may be planning a groupvacation and may be looking for a hotel entity 177. After submitting aquery 111 to a search provider 175 by one of the members of the group,the image engine 165 may receive entities 177 that are responsive to thequery 111 along with the associated images 168.

The image engine 165 may, for each user in the group of friends, use apreference model 167 associated with that user to select a set of images171 from the images 168 based on the tags 169 associated with the images168. Thus, each user may receive a different set of images 171 that isselected based on the user preferences of that user. For example, if afirst user is interested in selecting a hotel based on roomcharacteristics and a second user is interested in selecting a hotelbased on the hotel bar, then the set of images 171 selected for thefirst user may include images 168 that are tagged “room” and the set ofimages 171 selected for the second user may include images 168 that aretagged “bar”.

After each user of the group provides interest indicators 113, the imageengine 165 may attempt to correlate the interest indicators 113 todetermine which entities 177 were selected by the most users. Thedetermined entities 177 may then be included in a recommendation 172that is provided to each of the users. Continuing the example above, ifthe first user selects an image 168 of a hotel room associated with thesame entity 177 as an image 168 of a bar selected by the second user,then the first and the second user may each receive a recommendation 172that includes the hotel entity 177 selected by both of the users.

FIG. 2 is an illustration of an implementation of an exemplary imageengine 165. The image engine 165 may include one or more componentsincluding a tag engine 205, a selection engine 210, and a recommendationengine 215. More or fewer components may be included in the image engine165. Some or all of the components of the image engine 165 may beimplemented by one or more computing devices such as the computingdevice 1100 described with respect to FIG. 11. In addition, some or allof the functionality attributed to the image engine 165 may be performedby the client device 110, or some combination of the client device 110and the image engine 165.

The tag engine 205 may receive entities 177, and images 168 associatedwith each received entity 177. An entity 177 as used herein mayrepresent a person, place, or thing. Examples of entities 177 includecelebrities, hotels, houses, resorts, restaurants, and vehicles. Othertypes of entities 177 may be supported.

The entities 177 may be received from one or more search providers 175in response to one or more queries 111, or any other type of request foran entity 177. For example, a user may have generated a query 111 forentities 177 such as a restaurant with availability at a particular dateand location, or an item of clothing matching particular attributes. Thesearch provider 175 may have received the query 111, and may haveprovided identifiers of matching entities 177 to the tag engine 205 inresponse to the query 111. Alternatively, the tag engine 205 and/or theimage engine 165 may have generated the entities 177, and may haveperformed some or all of the functionality of the search provider 175.

The images 168 associated with each entity 177 may be received by thetag engine 205 along with the identifiers of entities 177.Alternatively, or additionally, some of the images 168 may be retrievedor collected by the tag engine 205. The tag engine 205 may collectimages 168 for entities 177 from one or more social networkingapplications or websites based on metadata or other identificationinformation associated with the images 168. For example, for entities177 such as restaurants, the tag engine 205 may retrieve images 168 thatwere taken and posted by users of one or more social networkingapplications, or that were posted by users on one or more restaurantreviewing webpages or applications. The images 168 associated with eachentity 177 may include professional or official images 168 provided bythe entities 177 themselves, and non-official or amateur images 168provided by users who are not affiliated with the entities 177.

The tag engine 205 may further determine one or more tags 169 for eachimage 168. The tags 169 for an image 168 may describe the contents ofthe image 168. For example, an image 168 of a hamburger may include tags169 such as “food”, “hamburger”, “entrée”, “sandwich”, etc. In someimplementations, the tags 169 may have already been assigned to eachimage 168. For example, the tags 169 may have been assigned by theentities 177 associated with the images 168, the user that provided theimages 168, or the search provider 175.

In other implementations, the tag engine 205 may determine the tags 169for each image 168 using machine learning. A machine learning algorithmmay be trained on a set of images 168 that have already been assignedtags 169 by one or more users or administrators. The machine learningalgorithm may be used to automatically determine tags 169 for untaggedimages 168. Any system or method for image identification using machinelearning may be used.

The selection engine 210 may generate and maintain a preference model167 for each user of the image engine 165. The preference model 167 maybe used to select a set of images 171 from the images 168 that areassociated with an entity 177 based on the tags 169 associated with theimages 168.

In some implementations, the preference model 167 may be generated bythe selection engine 210 based on the tags 169 associated with images168 that the user provides positive interest indicators 113 and/ornegative interest indicators 113 for. For example, if a user tends toprovide positive interest indicators 113 (e.g., selections, “likes”, orhigh ratings) to images 168 that have tags 169 such as “hamburger”and/or negative interest indicators 113 (e.g., no selections, no“likes”, or low ratings) to images 168 that have tags 169 such as “hotdog”, the preference model 167 may learn to favor images 168 that aretagged “hamburger” over images 168 that are tagged “hot dog” whenselecting images 168 for the set of images 171.

In some implementations, the preference model 167 may further be basedon preference information collected about the user. The collectedinformation may include an internet history of the user (e.g., webpagesviewed by the user or queries 111 submitted by the user), or informationabout the user collected from one or more social networking applications(e.g., profile information submitted by the user and “likes” or otherindicators provided by the user in the social networking application).Any other information about the user that could be used to determineuser preferences may also be used by the selection engine 210.

As may be appreciated, the various data and information collected abouteach user to create and maintain the preference models 167 may bepersonal and private. Accordingly, to protect the privacy of each user,any data collected by the selection engine 210 may be encrypted.Moreover, before any data is collected and used by the selection engine210, each user may be asked to opt-in or otherwise consent to thecollection and use of such data.

The selection engine 210 may use the preference model 167 to select aset of images 171 from the images 168 associated with the entities 177.In some implementations, the selection engine 210 may select the images168 for the set of images 171 by ranking each image 168 using thepreference model 167, and selecting the images 168 for the set of images171 based in-part on the ranking. Other methods may be used. The numberof images 168 in the set of images 171 may be set by a user or anadministrator and may be based on the resolution or othercharacteristics of the client device 110 associated with the user thatmay view the images 168 in the set of images 171.

The selection engine 210 may provide the set of images 171 to the clientdevice 110 associated with the user. The images 168 in the set of images171 may be displayed to the user on a display associated with the clientdevice 110. The images 168 may be displayed in groups based on the tags169 associated with the images 168, or based on some other orderingmethod. Depending on the implementation, the images 168 may be displayedwithout any text or other indication of the entities 177 that areassociated with each image 168.

In implementations where multiple users are associated with the entities177, the selection engine 210 may select a set of images 171 for eachassociated user using the preference model 167 associated with the user.The set of images 171 selected for each user may then be provided by theselection engine 210 to the client device 110 associated with eachrespective user.

The recommendation engine 215 may receive interest indicators 113 withrespect to one or more of the images 168 from the set of images 171, andmay generate a recommendation 172 in response to the interest indicators113. The recommendation 172 may identify one or more entities 177 thatwere associated with the images 168 of the set of images 171. Asdescribed above, interest indicators 113 may be indicators of interest(or disinterest) in the images 168 of the set of images 171 that weredisplayed to the user. The interest indicators 113 may include signals,selections, gestures (e.g., left or right swipes), “likes”, and/orratings or scores (e.g., 4/5, or three stars out of five), for example.Any method or technique for showing user interest or disinterest in auser interface may be used.

In implementations where a single user provided the interest indicators113, the recommendation engine 215 may select one or more entities 117by determining, based on the interest indicators 113, which images 168from the set of images 171 that the user preferred. The recommendationengine 215 may generate a recommendation 172 that identifies some or allof the entities 177 that are associated with the images 168 that werepreferred by the user. Continuing the hotel example, if the userprovided an interest indicator 113 that is a selection of an image 168of a particular hotel bar, then the recommendation engine 215 mayinclude an identifier of the hotel in the recommendation 172.

In implementations where multiple users provided interest indicators113, the recommendation engine 215 may select one or more entities 117by correlating the interest indicators 113 received from each user todetermine one or more entities 177 that are associated with images 168that were preferred by the most users. The recommendation engine 215 maygenerate a recommendation 172 for each user that identifies some or allof the determined entities 177. Continuing the hotel example, if a firstuser provided an interest indicator 113 that rated an image 168 of aroom at the “Hotel Monaco” highly, and a second user provided aninterest indicator 113 rated an image 168 of a pool at the “HotelMonaco” highly, then the recommendation engine 215 may add an indicatorof the “Hotel Monaco” to the recommendation 172 that is provided to theclient devices 110 associated with both the first user and the seconduser.

The recommendation 172 may include a variety of information about eachidentified entity 177. The information may include a name of the entity177, descriptive information about each entity 177, images 168associated with the entity 177, user ratings or reviews of the entity177, and one or more links that can be used to purchase or reserve theentity 177. Other information may also be included.

For example, for hotel entities 177, the recommendation 172 may includefor each entity 177 the name of the hotel, the location of the hotel,the cost of the hotel, images 168 of the hotel, user reviews of thehotel taken from one or more travel websites or social networkingapplications, and a link that can be used to book or reserve the hotel.For restaurant entities 177, the recommendation 172 may include for eachentity 177 the name of the restaurant, the location of the restaurant,an estimated price of a meal at the restaurant, images 168 of therestaurant and images 168 of particular dishes, user reviews of therestaurant, and a link that can be used to book or reserve therestaurant.

FIG. 3 is an illustration of an example user interface 300 for viewingimages 168 of entities 177, and for selecting entities 177 based on theimages 168. The user interface 300 may be implemented by the clientdevice 110 associated with the user. The user interface 300 may berendered and displayed on a variety of client devices 110 including, butnot limited to smartphones, tablet computers, head-mounted displays orheadsets, and videogame devices.

As shown in a window 320, a user has been presented with multiple images168 (i.e., the images 330 a, 330 b, 330 c, 330 d, 330 e, 330 f, 330 g,330 h, 330 i, 330 j, 330 k, and 330 l). As can be seen in the text thatis displayed at the top of the window 320, the images 168 may have beenpresented to the user in response to a query 111 for entities 177 suchas hotels in San Diego that are available from August 1-August 5.

Each of the images 168 may have been selected by the selection engine210 to present to the user using a user-specific preference model 167and the tags 169 associated with the images 168. The preference model167 may reflect the interests of the user and may be based on the tags169 of images 168 previously selected by the user in response to otherqueries 111.

The images 330 a, 330 b, and 330 c are images of hotel exteriors andindicate that the user has previously considered images 168 of exteriorswhen selecting hotels. The images 330 d, 330 e, and 330 f are images ofhotel rooms and indicate that the user has previously considered images168 of rooms when selecting hotels. The images 330 g, 330 h, and 330 iare images of hotel pools and indicate that the user has previouslyconsidered images 168 of pools when selecting hotels. The images 330 j,330 k, and 330 l are images of hotel bars and indicate that the user haspreviously considered images 168 of bars when selecting hotels.

In the example shown, each of the images 168 is displayed to the user inthe window 320 without any text or other information that may identifythe particular hotel that the image 168 is associated with. Depending onthe implementation, the user may choose to view or not view thisinformation along with each image 168.

After viewing the images 168, the user may provide interest indicators113 by selecting or highlighting the images 168 that the user isinterested in. After selecting one or more of the images 168, the usermay select or press the user interface element 340 labeled “Submit”. Inresponse to the selection, the client device 110 may send interestindicators 113 that include the selected images 168.

Continuing to FIG. 4, the user may have selected the images 330 h, 330g, and 330 k. In response, the selection of the images 330 h, 330 g, and330 k is provided to the image engine 165 as the interest indicators113, and used to generate a recommendation 172 that is provided to theclient 110 and displayed in the window 320. The text displayed in thewindow 320 has been updated to inform the user that the recommendationsare based on the images 168 selected by the user.

In the example shown, the recommendation 172 includes windows 410 (i.e.,the windows 410 a and 410 b) each showing a different hotel entity 177that is recommended based on the selected images 168. The window 410 arecommends a hotel called the “Balboa Hotel” based on the selection ofthe associated image 330 h which is also displayed in the window 410 a.The window 410 b recommends a hotel called “Old Town Hotel” based on theselection of the associated images 330 g and 330 k. Also shown in eachwindow 410 is various descriptive information about each hotel such asaddress and price, and a user interface element 440 (i.e., the userinterface elements 440 a and 440 b) labeled “Book” that can be used toreserve the associated hotel.

In addition, the window 420 includes a user interface element 450labeled “Pick Again” that the user can select or press if they are notsatisfied with the recommendation 172. If the user selects the userinterface element 450 the original images 168 may be displayed to theuser again (i.e., the images 330 a-330 l). Alternatively, new images 168may be selected and displayed by the image engine 165.

FIG. 5 is an illustration of an example user interface 500 for viewingimages 168 of entities 177, and for selecting entities 177 based on theimages 168. In the example shown, two users (i.e., Jim and Gina) may beusing the image engine 165 to select a restaurant entity 177 for anupcoming reservation. Accordingly, one or both of Jim and Gina may havesubmitted a query 111 to a search provider 175 that included criteriarelated to the reservation such as the date, location, and number ofpeople. In response, the search provider 175 generates restaurantentities 177 that matched the query 111, and provides the matchingentities 177 and associated images 168 to the image engine 165. Theimage engine 165 may select a set of images 171 for Jim based on thetags 169 associated with the images 168 and the preference model 167associated with Jim, and may select a set of images 171 for Gina basedon the tags 169 associated with the images 168 and the preference model167 associated with Gina.

The user interface 500 includes a window 520 that displays the set ofimages 171 (i.e., the images 550 a, 550 b, 550 c, 550 d, 550 e, and 550f) selected for Jim using the preference model 167 associated with Jim.The user interface 500 may be displayed to Jim on a client device 110associated with Jim. Each of the displayed images 168 in the set ofimages 168 is associated with a restaurant entity 177 that wasidentified by the search provider 175.

Because the images 168 of the set of images 171 selected for Jim arebased on the preference model 167 associated with Jim, the contents ofthe images 168 reflect the interests of Jim. As shown, the displayedimages 168 include the images 550 a, 550 b, and 550 c of desserts, whichindicates that Jim has previously shown an interest in desserts whenselecting restaurant entities 177. The displayed images 168 include theimages 550 d and 550 e of pasta, which indicates that Jim has previouslyshown an interest in pasta. The displayed images 168 include the image550 f of chicken which indicates that Jim has previously shown aninterest in chicken dishes.

After viewing the displayed images 168, Jim may select the images 550 eand 550 f. Jim may select the user interface element 540 labeled“Submit” to provide the interest indicators 113 that identify theselected images 550 e and 550 f to the image engine 165.

Continuing to FIG. 6, the user Gina may receive a set of images 171 thatare displayed on a client device 110 associated with Gina in a userinterface 600. The user interface 600 includes a window 620 where theimages 550 f, 650 a, 650 b, 550 d, and 550 e from the set of images 171selected for Gina are displayed.

The displayed images 168 of the set of images 171 are selected using thepreference model 167 associated with Gina, and are therefore differentthan the set of images 171 displayed to Jim in FIG. 5. For example, thedisplayed images 168 for Gina do not include any images 168 of desserts.

After viewing the displayed images 168, Gina may select the images 550e, 550 f, and 650 a. Gina may select the user interface element 640labeled “Submit” to provide the interest indicators 113 that identifythe selected images 550, 550 f, and 650 a to the image engine 165.

Continuing to FIG. 7, the image engine 165 may receive the interestindicators 113 from Gina and the interest indicators 113 from Jim andmay correlate the interest indicators 113 to determine an entity 177 fora recommendation 172 that is provided to the client devices 110associated with Gina and Jim.

As shown in FIG. 7, a user interface 700 may be implemented on either ofthe client devices 110 associated with Jim and Gina. The user interface700 includes a window 720 and a window 710 that displays informationrelated to a restaurant entity 177 that is selected for therecommendation 172 that was provided to both Jim and Gina. Therestaurant is named “Roberto's” and is chosen by the image engine 165because both Jim and Gina selected the images 550 f and 550 e which areassociated with the entity 177 “Roberto's”. The text displayed in thewindow 720 indicates that the recommended entity 177 is based on theimages 168 selected by both Jim and Gina.

Also shown in the window 710 is various descriptive information aboutthe restaurant entity 177 such as address and price, and a userinterface element 740 labeled “Book” that can be used by either Jim orGina to reserve the associated restaurant.

In addition, the window 720 includes a user interface element 750labeled “Pick Again” that either Gina or Jim can select or press if theyare not satisfied with the recommendation 172. Depending on theimplementation, if either user selects the user interface element 750the original images 168 may be displayed to both users again, or only tothe user that selected the user interface element 750. The image engine168 may re-select entities 177 for the recommendation 172 based on anychanges to the images 168 selected by the users.

FIG. 8 is an operational flow of an implementation of a method 800 forrecommending an entity based on interest indicators received from auser. The method 800 may be implemented by the image engine 165 and/orthe client device 110.

At 801, identifiers of a plurality of entities are received. Theidentifiers of a plurality of entities 177 may be received by the imageengine 165. The entities 177 may represent a variety of people, places,and things such as hotels and restaurants. Depending on theimplementation, the identifiers of entities 177 may have been receivedfrom one or more search providers 175 in response to a query 111received from a user.

At 803, a plurality of images is received for each entity. The pluralityof images 168 for each entity 177 may be received by the tag engine 205of the image engine 165. In some implementations, the plurality ofimages 168 received for each entity 177 may be received from the one ormore search providers 175 along with the identifiers of the entities177. Alternatively, or additionally, the images 168 may be received fromone or more users, or received from one or more social networkingapplications, for example.

At 805, a tag is determined for each image. The tag 169 for each image168 may be determined by the tag engine 205. The tag 169 associated withan image 168 may describe the contents of the image 168. Each image 168may have one, or more than one, tag 169. In some implementations, theimages 168 received by the tag engine 205 may already have an associatedtag 169. Alternatively, the tag engine 205 may determine the one or moretags 169 for each image 168 using machine learning. Any method fordetermining the contents of an image 168 may be used.

At 807, one or more images are selected for each entity based on thetags. The one or more images 168 may be selected for each entity 177 bythe selection engine 210 based on the tags 169 associated with eachimage 168 using a preference model 167 associated with the user thatwill receive the selected images 168. The selected images 168 may beprovided to a client device 110 associated with the user by theselection engine 210 as the set of images 171.

At 809, the selected one or more images are displayed for each entity.The selected images 168 from the set of images 171 may be displayed onthe client device 110 associated with the user.

At 811, interest indicators are received for the displayed images. Theinterest indicators 113 may be received by the recommendation engine 215from the client device 110. The interest indicators 113 may includeclicks or selections of one or more of the images 168 of the set ofimages 171. Other types of indicators such as scores or ratings may alsobe supported.

At 813, an entity is recommended based on the received interestindicators. The entity 177 may be recommended by the recommendationengine 215 based on the received interest indicators 113. For example,the recommendation engine 215 may determine the entity 177 whoseassociated images 168 received the greatest amount of positive interestindicators 113. The recommendation engine 215 may generate arecommendation 172 that includes the determined entity 177 and otherinformation about the entity 177 such as location, cost, associatedimages 168, etc. The recommendation 172 may be provided to the clientdevice 110 by the recommendation engine 215.

FIG. 9 is an operational flow of an implementation of a method 900 forrecommending an entity based on interest indicators received from two ormore users. The method 900 may be implemented by the image engine 165and/or the client device 110.

At 901, identifiers of a plurality of entities are received. Theidentifiers of a plurality of entities 177 may be received by the imageengine 165. Depending on the implementation, the entities 177 may havebeen received from one or more search providers 175 in response to aquery 111 received from either a first user or a second user. The firstand second user may be jointly trying to select an entity 177 such as ahotel, restaurant, or home, for example. The query 111 may identify oneor both of the first user and the second user.

At 903, a first preference model and a second preference model arereceived. The first preference model 167 and the second preference model167 may be received by the selection engine 210. Each user may have anassociated preference model 167 that has been trained to select images168 that the associated user is interested in or prefers based on tags169 associated with the images 168.

At 905, a plurality of images is received for each entity. The pluralityof images 168 for each entity 177 may be received by the selectionengine 210 of the image engine 165. In some implementations, theplurality of images 168 received for each entity 177 may be receivedfrom the one or more search providers 175 along with the identifiers ofthe entities 177. Each image 168 may be associated with one or more tags169 that describes the contents of the image 168. The tags 169 mayalready be associated with the images 168, or may be determined by theimage engine 165 using machine learning, for example.

At 907, a first set of images is selected. The first set of images 171may be selected for the first user, and may be selected by the selectionengine 210 based on the tags 169 associated with each image 168 and thefirst preference model 167 associated with the first user.

At 909, a second set of images is selected. The second set of images 171may be selected for the second user, and may be selected by theselection engine 210 based on the tags 169 associated with each image168 and the second preference model 167 associated with the second user.

At 911, the first and second set of images are provided. The first setof images 171 may be provided by the selection engine 210 to a clientdevice 110 associated with the first user, and the second set of images171 may be provided by the selection engine 210 to a client device 110associated with the second user. The first and second sets of images 171may be displayed to the first and second users on their respectiveclient devices 110.

At 913, first and second interest indicators are received for theprovided images. The first interest indicators 113 may be received bythe recommendation engine 215 from the client device 110 associated withthe first user. The second interest indicators 113 may be received bythe recommendation engine 215 from the client device 110 associated withthe second user. The first interest indicators 113 may include clicks orselections of one or more of the images 168 of the first set of images171 made by the first user. The second interest indicators 113 mayinclude clicks or selections of one or more of the images 168 of thesecond set of images 171 made by the second user.

At 915, an entity is recommended. The entity 177 may be recommended bythe recommendation engine 215 based on the first interest indicators 113and the second interest indicators 113. For example, the recommendationengine 215 may determine the entity 177 whose associated images 168received the greatest amount of positive interest indicators 113 fromboth the first user and the second user. The recommendation engine 215may generate a recommendation 172 that includes the determined entity177 and other information about the entity such as location, cost,associated images 168, etc. The recommendation 172 may be provided tothe client device 110 associated with the first user and the clientdevice 110 associated with the second user by the recommendation engine215.

FIG. 10 is an operational flow of an implementation of a method 1000 forrecommending an entity based on interest indicators received from a userand for updating a preference model. The method 1000 may be implementedby the image engine 165 and/or the client device 110.

At 1001, identifiers of a plurality of entities are received. Theidentifiers of a plurality of entities 177 may be received by the imageengine 165. Depending on the implementation, the identifiers of entities177 may have been received from one or more search providers 175 inresponse to a query 111 received from a user.

At 1003, a plurality of images is received for each entity. Theplurality of images 168 for each entity 177 may be received by theselection engine 210 of the image engine 165. Each image 168 may beassociated with one or more tags 169. The tags 169 may already beassociated with the images 168, or may be determined by the image engine165 using machine learning, for example.

At 1005, a preference model is received. The preference model 167 may bereceived by the selection engine 210. Each user associated with theimage engine 210 may have a preference model 167 that has been trainedto select images 168 that the user is interested in based on tags 169associated with the images 168.

At 1007, one or more images are selected based on the tags. The one ormore images 168 may be selected for each entity 177 by the selectionengine 210 based on the tags 169 associated with each image 168 usingthe received preference model 167.

At 1009, the selected one or more images are provided. The selected oneor more images 168 may be provided by the selection engine 210 to aclient device 110 associated with the user as the set of images 171. Theimages 168 of the set of images 171 may be displayed to the user ontheir associated client device 110.

At 1011, interest indicators are received for the provided one or moreimages. The interest indicators 113 may be received by therecommendation engine 215 from the client device 110 that was providedthe one or more images 168. The interest indicators 113 may includeclicks or selections of the images 168 of the set of images 171. Othertypes of indicators such as scores, ratings, or rankings may also besupported.

At 1013, an entity is recommended based on the received interestindicators. The entity 177 may be recommended by the recommendationengine 215 based on the interest indicators 113. For example, therecommendation engine 215 may determine the entity 177 whose associatedimages 168 received the greatest amount of positive interest indicators113. The recommendation engine 215 may generate a recommendation 172that includes the determined entity 177 and other information about theentity such as location, cost, associated images 168, etc. Therecommendation 172 may be provided to the client device 110 by therecommendation engine 215.

At 1015, the preference model is updated. The preference model 167 maybe updated by the selection engine 210 to reflect the most recentlyreceived interest indicators 113. Any method or technique for updating amodel may be used.

FIG. 11 shows an exemplary computing environment in which exampleembodiments and aspects may be implemented. The computing deviceenvironment is only one example of a suitable computing environment andis not intended to suggest any limitation as to the scope of use orfunctionality.

Numerous other general purpose or special purpose computing devicesenvironments or configurations may be used. Examples of well-knowncomputing devices, environments, and/or configurations that may besuitable for use include, but are not limited to, personal computers,server computers, handheld or laptop devices, multiprocessor systems,microprocessor-based systems, network personal computers (PCs),minicomputers, mainframe computers, embedded systems, distributedcomputing environments that include any of the above systems or devices,and the like.

Computer-executable instructions, such as program modules, beingexecuted by a computer may be used. Generally, program modules includeroutines, programs, objects, components, data structures, etc. thatperform particular tasks or implement particular abstract data types.Distributed computing environments may be used where tasks are performedby remote processing devices that are linked through a communicationsnetwork or other data transmission medium. In a distributed computingenvironment, program modules and other data may be located in both localand remote computer storage media including memory storage devices.

With reference to FIG. 11, an exemplary system for implementing aspectsdescribed herein includes a computing device, such as computing device1100. In its most basic configuration, computing device 1100 typicallyincludes at least one processing unit 1102 and memory 1104. Depending onthe exact configuration and type of computing device, memory 1104 may bevolatile (such as random access memory (RAM)), non-volatile (such asread-only memory (ROM), flash memory, etc.), or some combination of thetwo. This most basic configuration is illustrated in FIG. 11 by dashedline 1106.

Computing device 1100 may have additional features/functionality. Forexample, computing device 1100 may include additional storage (removableand/or non-removable) including, but not limited to, magnetic or opticaldisks or tape. Such additional storage is illustrated in FIG. 11 byremovable storage 1108 and non-removable storage 1110.

Computing device 1100 typically includes a variety of computer readablemedia. Computer readable media can be any available media that can beaccessed by the device 1100 and includes both volatile and non-volatilemedia, removable and non-removable media.

Computer storage media include volatile and non-volatile, and removableand non-removable media implemented in any method or technology forstorage of information such as computer readable instructions, datastructures, program modules or other data. Memory 1104, removablestorage 1108, and non-removable storage 1110 are all examples ofcomputer storage media. Computer storage media include, but are notlimited to, RAM, ROM, electrically erasable program read-only memory(EEPROM), flash memory or other memory technology, CD-ROM, digitalversatile disks (DVD) or other optical storage, magnetic cassettes,magnetic tape, magnetic disk storage or other magnetic storage devices,or any other medium which can be used to store the desired informationand which can be accessed by computing device 1100. Any such computerstorage media may be part of computing device 1100.

Computing device 1100 may contain communication connection(s) 1112 thatallow the device to communicate with other devices. Computing device1100 may also have input device(s) 1114 such as a keyboard, mouse, pen,voice input device, touch input device, etc. Output device(s) 1116 suchas a display, speakers, printer, etc. may also be included. All thesedevices are well known in the art and need not be discussed at lengthhere.

It should be understood that the various techniques described herein maybe implemented in connection with hardware components or softwarecomponents or, where appropriate, with a combination of both.Illustrative types of hardware components that can be used includeField-programmable Gate Arrays (FPGAs), Application-specific IntegratedCircuits (ASICs), Application-specific Standard Products (ASSPs),System-on-a-chip systems (SOCs), Complex Programmable Logic Devices(CPLDs), etc. The methods and apparatus of the presently disclosedsubject matter, or certain aspects or portions thereof, may take theform of program code (i.e., instructions) embodied in tangible media,such as floppy diskettes, CD-ROMs, hard drives, or any othermachine-readable storage medium where, when the program code is loadedinto and executed by a machine, such as a computer, the machine becomesan apparatus for practicing the presently disclosed subject matter.

In an implementation, a system for selecting and displaying images foreach of a plurality of entities and for recommending an entity of theplurality of entities based on interest indicators is provided. Thesystem includes at least one computing device and an image engine. Theimage engine: receives identifiers of a plurality of entities; receivesa plurality of images for each entity of the plurality of entities,wherein each image is associated with a tag; for each entity of theplurality of entities, selects one or more images of the plurality ofimages associated with the entity based on the tags associated with theimages of the plurality of images associated with the entity; for eachentity of the plurality of entities, displays the selected one or moreimages associated with entity; receives interest indicators for thedisplayed images; and based on the received interest indicators,recommends an entity of the plurality of entities.

Implementations may include some or all of the following features. Theimage engine may further display information associated with therecommended entity. The image engine that selects one or more images ofthe plurality of images associated with the entity based on the tagsassociated with the images of the plurality of images associated withthe entity may include an image engine that: receives a preference modelassociated with a user; and selects one or more images of the pluralityof images associated with the entity based on the tags associated withthe images of the plurality of images associated with the entity usingthe received preference model. The image engine further determines thetag associated with at least one image using machine learning. Theidentifiers of the plurality of entities may be received in response toa query. The image engine further: receives a preference modelassociated with a user; and updates the preference model based on thereceived interest indicators. The received interest indicators mayinclude a selection of at least one image of the displayed images, or ascore for at least one image of the displayed images. The receivedinterest indicators may include a ranking of the displayed images. Theentities may include hotels, restaurants, resorts, venues, locations,houses, or vehicles. The at least one computing device may include oneor more of a smartphone, a tablet computer, or a head mounted displaydevice.

In an implementation, a system for selecting and presenting images foreach of a plurality of entities and for recommending an entity of theplurality of entities based on interest indicators is provided. Thesystem may include at least one computing device and an image engine.The image engine: receives identifiers of a plurality of entities;receives a first preference model associated with a first user and asecond preference model associated with a second user; receives aplurality of images for each entity of the plurality of entities,wherein each image is associated with a tag; selects a first set ofimages from the plurality of images associated with each entity based onthe tags associated with the images and the first preference model;provides the first set of images to the first user; selects a second setof images from the plurality of images associated with each entity basedon the tags associated with the images and the second preference model;provides the second set of images to the second user; receives firstinterest indicators from the first user for the first set of images;receives second interest indicators from the second user for the secondset of images; and based on the first and second interest indicators,recommends an entity of the plurality of entities to the first user andthe second user.

Implementations may include some or all of the following features. Theimage engine further provides information associated with therecommended entity. The image engine further generates the tagassociated with each image using machine learning. The identifiers ofthe plurality of entities may be received in response to a queryreceived from the first user, and further wherein the query may identifythe second user. The entities may include hotels, restaurants, resorts,venues, locations, houses, and/or vehicles.

In an implementation, a method for selecting and presenting images foreach of a plurality of entities and for recommending an entity of theplurality of entities based on interest indicators is provided. Themethod includes receiving identifiers of a plurality of entities by acomputing device; receiving a plurality of images for each entity of theplurality of entities by the computing device, wherein each image isassociated with a tag; for each entity of the plurality of entities,selecting one or more images of the plurality of images associated withthe entity based on the tags associated with the images of the pluralityof images associated with the entity and a preference model by thecomputing device; for each entity of the plurality of entities,providing the selected one more images associated with entity by thecomputing device; receiving interest indicators in the provided imagesby the computing device; and based on the received interest indicators,recommending an entity of the plurality of entities by the computingdevice.

Implementation may include some or all of the following features. Themethod may further include providing information associated with therecommended entity. The method may further include generating the tagassociated with each image using machine learning. The identifiers ofthe plurality of entities may be received in response to a query. Theentities may include hotels, restaurants, resorts, venues, houses,locations, and/or vehicles.

Although exemplary implementations may refer to utilizing aspects of thepresently disclosed subject matter in the context of one or morestand-alone computer systems, the subject matter is not so limited, butrather may be implemented in connection with any computing environment,such as a network or distributed computing environment. Still further,aspects of the presently disclosed subject matter may be implemented inor across a plurality of processing chips or devices, and storage maysimilarly be effected across a plurality of devices. Such devices mightinclude personal computers, network servers, and handheld devices, forexample.

Although the subject matter has been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the subject matter defined in the appended claims is notnecessarily limited to the specific features or acts described above.Rather, the specific features and acts described above are disclosed asexample forms of implementing the claims.

What is claimed:
 1. A system for selecting and displaying images foreach of a plurality of entities and for recommending an entity of theplurality of entities based on interest indicators, comprising: at leastone computing device; and an image engine that: receives identifiers ofa plurality of entities; receives a plurality of images for each entityof the plurality of entities, wherein each image is associated with atag; for each entity of the plurality of entities, selects one or moreimages of the plurality of images associated with the entity based onthe tags associated with the images of the plurality of imagesassociated with the entity; for each entity of the plurality ofentities, displays the selected one or more images associated withentity; receives interest indicators for the displayed images; and basedon the received interest indicators, recommends an entity of theplurality of entities.
 2. The system of claim 1, wherein the imageengine further displays information associated with the recommendedentity.
 3. The system of claim 1, wherein the image engine that selectsone or more images of the plurality of images associated with the entitybased on the tags associated with the images of the plurality of imagesassociated with the entity comprises an image engine that: receives apreference model associated with a user; and selects one or more imagesof the plurality of images associated with the entity based on the tagsassociated with the images of the plurality of images associated withthe entity using the received preference model.
 4. The system of claim1, wherein the image engine further determines the tag associated withat least one image using machine learning.
 5. The system of the 1,wherein the identifiers of the plurality of entities are received inresponse to a query.
 6. The system of claim 1, wherein the image enginefurther: receives a preference model associated with a user; and updatesthe preference model based on the received interest indicators.
 7. Thesystem of claim 1, wherein the received interest indicators comprise aselection of at least one image of the displayed images, or a score forat least one image of the displayed images.
 8. The system of claim 1,wherein the received interest indicators comprise a ranking of thedisplayed images.
 9. The system of claim 1, wherein the entitiescomprise hotels, restaurants, resorts, venues, locations, houses, orvehicles.
 10. The system of claim 1, wherein the at least one computingdevice comprises one or more of a smartphone, a tablet computer, or ahead mounted display device.
 11. A system for selecting and presentingimages for each of a plurality of entities and for recommending anentity of the plurality of entities based on interest indicators,comprising: at least one computing device; and an image engine that:receives identifiers of a plurality of entities; receives a firstpreference model associated with a first user and a second preferencemodel associated with a second user; receives a plurality of images foreach entity of the plurality of entities, wherein each image isassociated with a tag; selects a first set of images from the pluralityof images associated with each entity based on the tags associated withthe images and the first preference model; provides the first set ofimages to the first user; selects a second set of images from theplurality of images associated with each entity based on the tagsassociated with the images and the second preference model; provides thesecond set of images to the second user; receives first interestindicators from the first user for the first set of images; receivessecond interest indicators from the second user for the second set ofimages; and based on the first and second interest indicators,recommends an entity of the plurality of entities to the first user andthe second user.
 12. The system of claim 11, wherein the image enginefurther provides information associated with the recommended entity. 13.The system of claim 11, wherein the image engine further generates thetag associated with each image using machine learning.
 14. The system ofclaim 11, wherein the identifiers of the plurality of entities arereceived in response to a query received from the first user, andfurther wherein the query identifies the second user.
 15. The system ofclaim 11, wherein the entities comprise hotels, restaurants, resorts,venues, locations, houses, or vehicles.
 16. A method for selecting andpresenting images for each of a plurality of entities and forrecommending an entity of the plurality of entities based on interestindicators, comprising: receiving identifiers of a plurality of entitiesby a computing device; receiving a plurality of images for each entityof the plurality of entities by the computing device, wherein each imageis associated with a tag; for each entity of the plurality of entities,selecting one or more images of the plurality of images associated withthe entity based on the tags associated with the images of the pluralityof images associated with the entity and a preference model by thecomputing device; for each entity of the plurality of entities,providing the selected one more images associated with the entity by thecomputing device; receiving interest indicators in the provided imagesby the computing device; and based on the received interest indicators,recommending an entity of the plurality of entities by the computingdevice.
 17. The method of claim 16, further comprising providinginformation associated with the recommended entity.
 18. The method ofclaim 16, further comprising generating the tag associated with eachimage using machine learning.
 19. The method of claim 16, wherein theidentifiers of the plurality of entities are received in response to aquery.
 20. The method of claim 16, wherein the entities comprise hotels,restaurants, resorts, venues, houses, locations, or vehicles.